[社内勉強会レポート] 『テスト駆動開発』読書勉強会 #6
はじめに
こんぬづは、最近DJ入門したのですが、自分の好きな曲がつなぎにくいことに気づいてしまった田中です。BPMがバラバラだったりずっと歌ってたりでアニソンとか、声優ソングとか難しい...。
さて本題に入っていきましょう。今回は15章からとなります。13章、14章はまとめ忘れてしまったのでスキップします。
この会の趣旨
この会の趣旨については、第一回のまとめをご覧ください。
それではまとめていきます。
15章 「テスト任せとコンパイラ任せ」
概要
コンパイルエラーから直していくルートと、テストの失敗から直していくルートについて語られている章。
話し合われた内容
- テストを走らせてレッドを見るか、コンパイラによるレッドを見るかの違い
- テストから実装を導き出すとき -> インターフェースはそのままに、実装の間違いを検知しやすい
- コンパイラから実装を導き出すとき -> インターフェースを変更して、そもそもコンパイル時点でのミスに気付きやすい
- この二つの違いは考えれば当たり前のようだけど、言葉にするとすごくしっくりきてよかった
- IDEの自動補完、自動生成を使うと、インターフェースではなく具象型を補完することがある。補完でなく定義へのジャンプもインターフェースに飛びたいけど実装に飛んだり、実装に飛びたいけどインターフェースに飛んだりとかあるよね。難しいんだろうけどちょっと不便
- TDDからより良い設計を教えて欲しいが、いまここは人任せになっている。
- テストを書くことで、変更をしやすくなってはいるが、TDDの範疇はそこまで?
- TDDでよりよい設計を導いてくれるシーンがわからない。どうすればTDDから設計を導けるのだろう?
- 本の中でもフレーズが出てくるが、人のひらめきに頼りたくない
16章 「将来の読み手を考えたテスト」
概要
将来の読み手のために考えるべきことが書かれた章。また、テストコードとプロダクトコードの分量とそのバランスと計測についても語られている。
話し合われた内容
- ここでやっている内容は第4章 「意図を語るテスト」とリンクしている
まとめ
15章が自分にとって目からウロコでした。テストを実行した結果としてレッドを検知して、プロダクトコードを修正する流れは意識して行ってきていました。コンパイルによるエラーもレッドの内に含まれるということは知っていましたが、そちらから修正するときに意識することは特になかったため、15章の解説はとてもしっくりきました。
16章を読んで、第一部は序盤にやったことを反復して解説し直すことが多いということに気付きました。良い本だ...。
第一部で残すところは振り返りを行う17章。ここまでやってきた内容を勉強会内でも振り返ってみようと思っています。